718 words
Matplotlib与可视化分析我们之前对数据的处理与分析,其实最终还是要利用可视化工具进行更加直观的输出 我们开业通过 1pip install matplotlib 命令来安装对应的模块 简单图形的绘制我们可以通过matplotlib的子模块pyplot来进行平面图像的绘制,比较便捷,而且输出格式也更加多样化 我们可以给他起个名字叫plt 例如 1234567891011121314import mathimport matplotlib.pyplot as pltnbSamples = 256xRange = (-math.pi, math.pi)x, y = [], []for n in range(nbSamples): ratio = (n + 0.5) / nbSamples x.append(xRange[0] + (xRange[1] - xRange[0]) * ratio) y.append(math.sin(x[-1]))plt.plot(x, y)plt.show() 结果如下 这里最复杂的其实是对x和y函数的构造,实际上关于绘图...
1.5k words
Pandas的文件读取与分析Pandas是数据分析的重要工具,因此从外部读取数据的能力是十分重要的,常用的API如图 文件类型 文件说明 读取函数 写入函数 CSV 是以纯文本形式存储的,以逗号分隔的表格数据 read_csv to_csv HDF 是一种高效存储和分发科学数据的层级数据格式 read_hdf to_hdf SQL 是一种用格式化查询语言编写的数据库查询脚本文件 read_sql to_sql JSON 一种轻量级文本数据交换格式文件 read_json to_json html 一种由超文本标记语言编写的网页文件 read_html read_html PICKLE Python内部支持的一种序列化文件 read_pickle to_pickle 利用Pandas读取文件Pandas可以读取到表格类型数据,转换成DF类型的数据,然后通过DF进行数据分析,数据预处理等操作 对于Pandas来说他的核心在于数据分析,而不是进行读写 需要注意的是,读取文件的方法配置了大量的参数,更多内容还需要阅读Pandas的官方文档 DataFr...
1.7k words
Pandas 数据分析Pandas 简介Pandas是Python生态下的一个数据分析包,他对于Python数据分析的意义是十分重大的,他与NumPy的不同之处是支持图标和混杂数据运算的,而NumPy是基于数组构建的内容,他的各种图像生成也十分方便,并且支持各种数据存储文件、数据库、甚至Web中读取数据 Pandas 安装和NumPy的安装一样使用 1pip install pandas 命令安装即可 Series 类型数据Series是Pandas的核心数据结构之一,也是理解DataFrame的基础 Series的创建Series的中文翻译是系列,是一种类似于一维数组的结构,是数组和索引构成的 12import pandas as pdpd.Series(data, index = index) 在这两个参数中,data是数据源,可以是整数,字符串等,而默认索引就是数据的标签(label) 例如 12a = pd.Series([1, 2, 5, 3, 2])print(a) 需要注意的是Series的内部是基于NumPy的N维数组构建的,因此内部的数据需要统一 其次S...
1.1k words
vi/vim简单来说,vi和vim基本上都是所有Linux系统自带的编辑器,但是我们不排除在未来的某些极端条件下,需要利用vi/vim进行代码的编写或修改 其实vi和vim是一家子,他们都是多模式编辑器,而vim是vi的升级版,不仅支持vi的所有指令,还支持了语法高亮等特性,可视化操作甚至可以运行在其他操作系统上 因此我们主要介绍vim的使用 vim的基本概念我们知道vim是多模式编辑器,他的模式有非常多,对于我们初学者目前只需要掌握其中的三种即可 命令模式(command mode)、插入模式(insert mode)、末行模式(last line mode) 在命令模式下,可以控制光标移动,删除,移动,复制粘贴,或者进入其他两种模式 在插入模式下,才可以对文件内容进行操作,按[ESC]即可回到命令模式 在末行模式下,做文件的保存或者退出,也可以进行文件替换,查找,列出行号等操作,在命令模式下输入英文冒号即可进入 vim的基本操作进入vim,一般直接使用vim创建文件即可,例如 1vim test.c 进入之后是处于命令模式,需要切换到插入模式才可以进行输...
1.3k words
json模块json实际上是一种数据存储格式,是一种轻量级的数据交互格式,可以把他理解成一个特定格式的字符串以文件的形式存储起来 主要是在各个编程语言中交流的数据格式 从形式上看,json数据格式类似于Python的字典,列表,元组等数据容器 他长得像这样 123{"name":"summer","age":18}[{"name":"summer","age":18},{"name":"morty","age":14}] 我们可以利用一些工具将这些数据的格式层次显示清楚一点 在线JSON格式化工具 例如 当数据量巨大时,或者嵌套层数比较深的时候,这样的工具就比较方便了 json与Python数据的相互转化1234567import json # 导入json模块data = [{"name":"sum...
2.8k words
NumPyNumPy介绍在Python中有列表和数组模块,但是都不好用,列表的缺点是要保存每个对象的指针,如果你的列表有一百万个元素,他就有一百万个指针,而数组又只支持一维数组,并不适合数值运算 NumPy的模块支持数组和矩阵(向量)的运算,对机器学习算法比较友好,支持n维数组,有强大的数学运算对很多第三方库(SciPy,Pandas)都提供的底层支持 导入NumPy首先要确保你的安装了NumPy库 1pip install numpy 一般我们会给NumPy起别名为np NumPy数组序列生成数组生成数组最简单的方法就是用array()方法,他可以接收任意类型的数据(列表、元组等)作为数据源 需要注意的是,如果各种数据的数据类型不统一,但是数据类型可以相互转换,就会进行自动转换,浮点数和整数都存在时,就会将整数自动转化成浮点数 每一个数组都可以利用dtype数据(ArrName.dtype)来输出数组中数据的类型,如果没有显示指定(ArrName.astype()),数组就会自动推断数据类型 例如 12345678910import numpy as npprint(np._...
671 words
仿函数上回我们说到,优先队列的实现需要用到仿函数的特性 让我们再回到这里 这里我们发现他传入的用于比较的东西竟然是一个类模板,而不是我们所见到的函数 我们可以先创建一个类,用于比较大小 1234567struct Less{ bool operator()(int x, int y) { return x < y; }}; 这里我们创建了一个Less类,并且重载了圆括号,让他比较x<y是否成立 我们可以这样使用 12Less ls;cout << ls(1, 2) << endl; 结果是1 我们单单从cout这一句来看,ls就好像一个函数一样,可以比较1和2的大小,但是实际上是由Less创建的一个对象来比较的 我们把这一句还原 123Less ls;cout << ls(1, 2) << endl;cout << ls.operator()(1, 2) <<endl; 实际上后面这一句才是原本的样子 如果我们给这个...
967 words
LInux 权限管理Linux中有两种用户,root和普通用户 对于root用户,命令提示符是#,可以做任何事,不受限制 对于普通用户,命令提示符是$ 1su [用户名] 用这个命令可以切换登录用户 12su usersu root root可以省略,需要输入root用户的口令 文件我们可以通过ls -l命令查看文件夹内的详细信息 例如 我们依次来解释这些内容的意思 文件访问者我们可以看到在file1这个文件中有一串是root root 这里其实对应了两个身份,第一个root的位置表示该文件的所属用户,第二个root表示该文件的所属用户组,即这个文件属于哪个组 还有第三个身份就是其他用户,即不属于组的用户 文件类型与基本权限这里最前面有一串字符 -rw-rw-r– 这里其实是分块理解的,第一个字符表示文件类型 字符 说明 d 文件夹 - 普通文件 l 软连接(类似于快捷方式) b 块设备文件 p 管道文件 c 字符设备文件(输入输出设备) s 套接口文件 后面九个字符,三个三个一组,分别对应三种身份的各种权限 r表示有读权限 w表示...